GEMS Telemetry

Get and parse data sent to GEMS website. Data from 2025-06-23 to present.

Get Data

Get data from website.

Use start_date parameter to limit download.

Add row, type, send and line number

Separate data into post times, met, status, and adv data

Warning: Expected 9 pieces. Missing pieces filled with `NA` in 4 rows [1, 2, 9816,
9817].

reshape rga data

Filter bad data before timestamping adv data

Calculate per-send means

Warning: There were 4524 warnings in `summarise()`.
The first warning was:
ℹ In argument: `across(...)`.
ℹ In group 1: `send = 1`.
Caused by warning in `mean.default()`:
! argument is not numeric or logical: returning NA
ℹ Run `dplyr::last_dplyr_warnings()` to see the 4523 remaining warnings.
Warning: There were 4270 warnings in `summarise()`.
The first warning was:
ℹ In argument: `across(...)`.
ℹ In group 1: `send = 96`.
Caused by warning in `mean.default()`:
! argument is not numeric or logical: returning NA
ℹ Run `dplyr::last_dplyr_warnings()` to see the 4269 remaining warnings.

Status

Last post was 2025-07-10 16:50:25

How many status lines are in the wrong year?

Joining with `by = join_by(send)`

Teensy Temp

Junction temp of Surface teensy. Runs at 50C at room temp. >95C kills teensies.

`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
Warning: Removed 963 rows containing missing values or values outside the scale range
(`geom_segment()`).

Battery

`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
Warning: Removed 3 rows containing missing values or values outside the scale range
(`geom_segment()`).

Turbo

`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
Warning: Removed 3 rows containing missing values or values outside the scale range
(`geom_segment()`).
`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
Warning: Removed 3 rows containing missing values or values outside the scale range
(`geom_segment()`).

`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'

RGA

`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
Warning: Removed 1 row containing non-finite outside the scale range
(`stat_smooth()`).
`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
Warning: Removed 1 row containing non-finite outside the scale range
(`stat_smooth()`).
Warning: Removed 1 row containing missing values or values outside the scale range
(`geom_point()`).

Oxygen

Carbon dioxide

`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'

Methane

`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
Warning: Removed 615 rows containing non-finite outside the scale range
(`stat_smooth()`).

Hydrogen sulphide

`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
Warning: Removed 342 rows containing non-finite outside the scale range
(`stat_smooth()`).

ADV

Pressure/Depth

ADV Correlation

`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'

ADV Amplitude

`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'

ADV Vertical Velocity

Warning: Removed 72 rows containing missing values or values outside the scale range
(`geom_pointrange()`).
Warning: Removed 691 rows containing missing values or values outside the scale range
(`geom_segment()`).

ADV Alongshore Velocity

ADV set up with x axis parallel to shore. Positive is North.

Warning: Removed 30 rows containing missing values or values outside the scale range
(`geom_segment()`).

ADV Onshore velocity

Positive is offshore

Warning: Removed 30 rows containing missing values or values outside the scale range
(`geom_segment()`).

IMU data

`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
Warning: Failed to fit group -1.
Caused by error in `gam.reparam()`:
! NA/NaN/Inf in foreign function call (arg 3)
`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'

Data issues

Bad Packets

Garbled status or data packets. These need to be filtered out before timestamping. These should be caught on the lander by adding a checksum. Also need to check whether data is corrupted from ADV-lander, lander-surface, or surface-web.

Out of order packets

Not sure what causes this. Happening on the server side. Maybe parallel processing of POST requests? Handled by sorting each send by packet number.

Missing data

Missing data includes bad packets. Need to separate out.

Joining with `by = join_by(send)`
`summarise()` has grouped output by 'send'. You can override using the
`.groups` argument.

Post times

timestamp send row_count
2025-07-10 13:40:25 2248 500
2025-07-10 13:50:25 2249 500
2025-07-10 14:00:25 2250 500
2025-07-10 14:10:25 2251 500
2025-07-10 14:20:25 2252 500
2025-07-10 14:30:25 2253 500
2025-07-10 14:40:24 2254 500
2025-07-10 14:50:25 2255 500
2025-07-10 15:00:25 2256 500
2025-07-10 15:10:00 2257 500
2025-07-10 15:20:25 2258 500
2025-07-10 15:30:25 2259 500
2025-07-10 15:40:25 2260 500
2025-07-10 15:50:25 2261 500
2025-07-10 16:00:25 2262 500
2025-07-10 16:10:00 2263 499
2025-07-10 16:20:25 2264 500
2025-07-10 16:30:25 2265 500
2025-07-10 16:40:25 2266 500
2025-07-10 16:50:25 2267 500

Lines per post

Warning: Removed 3 rows containing missing values or values outside the scale range
(`geom_point()`).